1. Field of the Present Invention
The present invention is in the field of data processing systems and, more particularly, data processing systems employing external or remote I/O resources.
2. History of Related Art
Data processing systems require resources to perform input/output (I/O) operations. Such I/O resources include, as examples, adapter cards for persistent storage devices and network communications. The adapter cards preferably comply with an industry standard buss interface, such as PCI or PCI-X. The system processing unit utilizes these I/O resources via a bridge device, which accesses the I/O interface buss. Generally, all of the I/O structure is inside the system chassis. Customers generally require a processing system, herein called the host, which will enable them to expand their I/O capacity as their business demand evolves. Simultaneously, customers want maximum flexibility including, as examples, the ability to share I/O resources across multiple hosts, and to alter the assignment of resources between these hosts. Manufacturers have responded to these requirements by offering products referred to herein as expansion apparatus or expansion drawers. An I/O Expansion Drawer is a box or chassis that connects to a host via an expansion buss. An I/O Expansion Drawer generally includes one or more expansion cards, each with multiple adapter card “slots” that may be populated with the desired adapter cards.
With the present expansion drawer implementations, it is generally difficult and time consuming to reassign the I/O resources in the I/O Expansion Drawer to another host. For example, when a host fails, the I/O resources within the I/O Expansion Drawer are no longer available. These I/O resources can be made available again by reassigning them to another host, but it is undesirable to require system administrators to physically move the I/O Expansion Drawer, or move the adapter cards from the I/O Expansion Drawer to another host. It is desirable to implement an electronic means that changes the assignment of I/O resource between multiple hosts for the user.